/*
 * @Author: qjb 
 *  用户初次登录，需修改密码并确认信息是否正确
 * @Date: 2018-08-07  
 */
layui.config({
}).use(['zlConfig', 'zlContext', 'zlSelecttree', 'zlPinYin', 'form', 'element'], function (exports) {
	var $ = layui.$
		, zlContext = layui.zlContext
		, layer = layui.layer
		, zlConfig = layui.zlConfig
		, statusName = zlConfig.global.result.statusName
		, msgName = zlConfig.global.result.msgName
		, dataName = zlConfig.global.result.dataName
		, ERROR = zlConfig.global.result.errorState
		, OK = zlConfig.global.result.okState
		, zlPinYin = layui.zlPinYin
		, form = layui.form
		, element = layui.element;
	
	function checkPassWord(value) {
		// 0： 表示第一个级别 弱 1：表示第二个级别 中 2：表示第三个级别 强
		// 3： 表示第四个级别 4：表示第五个级别
		var modes = 0;
		if (value.length < 6) {//最初级别
			return modes;
		}
		if (/\d/.test(value)) {//如果用户输入的密码 包含了数字
			modes++;
		}
		if (/[a-z]/.test(value)) {//如果用户输入的密码 包含了小写的a到z
			modes++;
		}
		if (/[A-Z]/.test(value)) {//如果用户输入的密码 包含了大写的A到Z
			modes++;
		}
		if (/\W/.test(value)) {//如果是非数字 字母 下划线
			modes++;
		}
		return modes;
	};
	// 密码输入时 实时检测强度
	$('input[name="ccc"]').on('keyup',function(){
		var newLevel = checkPassWord($(this).val());
		if ($(this).val() == '') {
			element.progress('strenth', '0');
			$('span.strenth_Text').html('无').css('color','#666');
			return;
		}

		function progress(barColor, length, strenthText, textColor){
			$('div.layui-progress-bar').removeClass(function(index, classname){
				return classname.substr(19)
			}).addClass('layui-bg-' + barColor)
			element.progress('strenth', length);
			$('span.strenth_Text').html(strenthText).css('color',textColor);
		}

		switch (newLevel) {
			case 0:
				progress('red','20%','弱','#FF5722')
				break;
			case 1:
				progress('orange','40%','中','#FFB800')
				break;
			case 2:
				progress('blue','60%','强','#1E9FFF')
				break;
			case 3:
				progress('green','80%','很强','#277FD0')
				break;
			case 4:
				progress('cyan','100%','最强','#2F4056')
				break;
		}
	});

	form.verify({
		zhanghm: function (value, item) { //value：表单的值、item：表单的DOM对象
			if (value == "") {
				return '登录账号不能为空';
			}
			var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im,
            regCn = /[·！#￥（——）：；“”‘、，|《。》？、【】[\]]/im;
			if (value && (regEn.test(value) || regCn.test(value))) {
				return '登录账号不能有特殊字符';
			}
		}
		, pass: function (value, item) {
			if (value == "") {
				return '密码不能为空';
			}
			// 0： 表示第一个级别 弱 1：表示第二个级别 中 2：表示第三个级别 强
			// 3： 表示第四个级别 4：表示第五个级别
			var pscheck = parseInt($('input[name="PassStrongCheck"]').val());
			if (pscheck !== "none") {
				var pstrong = checkPassWord(value);
				if (pstrong < pscheck) {
					var msg = '密码强度不够，';
					if (pscheck == 1) {
						msg += '需为中以上的强度才能修改';
					} else if (pscheck == 2) {
						msg += '需为强以上的强度才能修改';
					} else if (pscheck == 3) {
						msg += '需为很强以上的强度才能修改';
					} else if (pscheck == 4) {
						msg += '需为最强的强度才能修改';
					} else {
						msg += '无法修改';
					}
					return msg;
				}
			}
			// var pscheck = $('input[name="PassStrongCheck"]').val();
			// if (pscheck !== "none") {
			// 	var pstrong = checkPassWord(value);
			// 	if(pstrong<pscheck){
			// 		return '密码强度不够无法注册';
			// 	}
			// }
			if( $('input[name="ccc"]').val()!==$('input[name="repass"]').val()){
				return '两次密码输入不一致';
			}
		}
		, objname: function (value, item) {
			if (value == "") {
				return item.placeholder + '不能为空';
			}
		}
	});

	var uservo = zlContext.getCurrentUser().userCursor;

	zlContext.autoFill('#frmGridUser',uservo);
	// $('input[name="RWID"]').val(uservo.RWID);
    $('input[name="ccc"]').val("");

	//提交
	form.on('submit(LAY-user-reg-submit)', function (obj) {
		var pas=$('input[name="ccc"]').val();
		var repas=$('input[name="repass"]').val();
		if(pas!=repas){
			zlContext.errorMsg("两次输入的密码不一致！")
			return;
		}
		if(uservo.PSW==(md5(pas)).toUpperCase()){
			zlContext.errorMsg("新密码与旧密码一致，请重新输入！")
			$('input[name="ccc"]').val("");
			$('input[name="repass"]').val("");
			return;	
        }
        var param = obj.field;
        var psw = md5(param.ccc).toUpperCase();
        $('input[name="ccc"]').val(psw);
        $('input[name="repass"]').val(psw);
		param.PSW= psw;
		zlContext.post(layui.cache['contentPath'] + '/admin/coreuser/modify', param, function (result) {
			if (result[statusName] == OK) {
				zlContext.successMsg("个人基本资料修改成功！");
				top.location.href = layui.cache['contentPath'] + '/logout';
			}
			else {
                zlContext.errorMsg(result[msgName]);
                $('input[name="ccc"]').val(pas);
                $('input[name="repass"]').val(pas);
			}
		});
		return false;
	});
	form.render();
});

